Js 中Sort按照固定数组元素排序

假如有个数组testArray 如下:

1
var testArray = ["test4","test2", "test1", "test3"];

如果让其按照数组standardArray的固定元素来排序,数组standardArray如下:

1
var standardArray = ["test1", "test2", "test3", "test4","test5"];

期望得到的结果是:

1
var testArray =  ["test1", "test2", "test3", "test4"];

则方法如下:

1
2
3
4
5
6
7
8
9
testArray.sort(function (a, b) {
if (standardArray.indexOf(a)< standardArray.indexOf(b)){
return -1;
}
if (standardArray.indexOf(a)> standardArray.indexOf(b)){
return 1;
}
return 0;
});

sort参数说明:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
在本例中,先确定testArray的每个元素在standardArray的位置。

var fruits = [“test4”,”test2”, “test1”, “test3”];

对应为 4,2,1,3

继开 wechat
欢迎加我的微信,共同交流技术